1. Technical Field
The present invention relates to a computer system a control method of the same for in-system reprogramming of a fixed flash ROM when access to the same is not possible. More particularly, the present invention relates to a computer system and a control method of the same capable of reprogramming a fixed flash ROM without removing the same from the computer system when it is not possible to access the fixed flash ROM.
2. Related Art
Computer systems are information handling systems that are utilized by many individuals and businesses today. A computer system can be defined as a microcomputer that includes a central processing unit (CPU), a volatile memory, a non-volatile memory such as read only memory (ROM), a display monitor, a keyboard, a mouse or other input device such as a trackball, a floppy diskette drive, a compact disc-read only memory (CD-ROM) drive, a modem, a hard disk storage device, and a printer. A computer system's main board, which is a printed circuit board known as a motherboard, is used to electrically connect these components together.
The central processing unit is often described as a microprocessor. The microprocessor is an electronic component having internal logic circuitry handling most, if not all, the data processing in the computer system. The internal logic circuitry of microprocessors is typically divided into three functional parts known as the input/output (I/O) unit, the control unit, and the arithmetic-logic unit (ALU). These three functional parts interact together and determine the power and performance of the microprocessor. The combination of the control unit and the arithmetic-logic unit can be referred to as the central processing unit. Also, the combination of the input/output unit, the control unit, and the arithmetic-logic unit can be referred to as the central processing unit.
One example of non-volatile memory is read only memory (ROM). Information stored in non-volatile memory can remain unchanged even when there is a power failure. The information stored in non-volatile memory will stay there until it is changed. Read only memory (ROM) is used to store important information such as instructions for the central processing unit (CPU). There are different types of read only memory (ROM) including, for example, electrically-erasable-programmable-read-only-memory (EEPROM) chip and flash-read-only-memory (flash-ROM). The flash-ROM can also be referred to as flash memory. There are differences between an EEPROM chip and flash-ROM, as shown below.
Computer systems include a basic input output system (BIOS) which is an especially important program stored in read only memory (ROM). The basic input output system (BIOS) tests a computer every time the computer is powered on. The basic input output system (BIOS) can allocate a computer system's resources automatically, making adjustments needed to accommodate new hardware. Also, the basic input output system (BIOS) governs how system board components interact.
When the computer system is powered on, the basic input output system (BIOS) immediately takes control of the computer system and its components. The first duty of the basic input output system (BIOS) is to perform a series of diagnostic routines called the power on self test (POST) routine, which ensures that every part of the computer system's hardware is functioning properly.
A basic input output system (BIOS) that is stored in flash-read-only-memory (flash-ROM) is vulnerable to computer viruses. Computer viruses include malicious computer programs which can be used to erase information stored in memory. I believe there is a need to provide a method of coping with such malicious programs in order to protect a basic input output system (BIOS) stored in flash-read-only-memory (flash-ROM).
Flash ROM, or flash memory, is non-volatile memory that is electrically erasable and reprogrammable. That is, flash ROM, unlike random access memory (RAM), retains its contents even when the power is turned off, and can be updated in the system with new revisions of code, different user parameters or settings, data collected over time, and more. Thus, flash ROM is electrically erasable and reprogrammable.
Flash memory is also sometimes referred to as flash EEPROM (electrically erasable programmable read only memory) because of its reprogrammability. However, flash ROM differs from EEPROM in that EEPROM requires data to be written or erased one byte at a time whereas flash memory allows data to be written or erased in blocks. Flash ROM is also simpler in structure than EEPROM. Flash memory is generally less expensive than dynamic random access memory (DRAM) on a cost per bit basis. Flash memory wears out with repeated use of roughly 100,000 cycles.
The advantages of flash memory include low cost, non-volatility as mentioned above, large storage density, and reprogramability. Further, compared to hard disk drives, flash ROM is lighter and more resilient to shocks.
The drawbacks of flash memory include a limited number of write/erase cycles, slow speed especially on write and erase, and the presence of bad blocks. With regard to presence of bad blocks, some flash memory devices allow small numbers of bad blocks which, while increasing yield and reducing cost, add complexity.
Another drawback of flash memory is that when access to the same is not possible, as a result a of data stored in the flash ROM being erased or a serious error occurring during a reprogramming operation, the flash ROM must be removed from the computer system and reprogrammed. That is, after removing the flash ROM from the computer, the same is mounted in a ROM writer and, using a utility program, is reprogrammed. This is a complicated and time-consuming procedure.
I have found that the above drawbacks of flash memory can be extremely inconvenient. Efforts have been made to reduce the above drawbacks of flash memory.
Exemplars of recent efforts in the art include U.S. Pat. No. 5,815,706 for COMPUTER SYSTEM WITH PLUG-IN OVERRIDE OF SYSTEM ROM issued to Stewart et al., U.S. Pat. No. 5,805,882 for COMPUTER SYSTEM AND METHOD FOR REPLACING OBSOLETE OR CORRUPT BOOT CODE CONTAINED WITHIN REPROGRAMMABLE MEMORY WITH NEW BOOT CODE SUPPLIED FROM AN EXTERNAL SOURCE THROUGH A DATA PORT issued to Cooper et al., U.S. Pat. No. 5,634,079 for SYSTEM FOR PROVIDING FOR A PARALLEL PORT WITH STANDARD SIGNALS AND A FLASH RECOVERY MODE WITH SECOND PREDETERMINED SIGNALS REDEFINING PARALLEL PORT WITH ALTERNATE FUNCTIONS issued to Buxton, U.S. Pat. No. 5,568,641 for POWERFAIL DURABLE FLASH EEPROM UPGRADE issued to Nelson et al., U.S. Pat. No. 5,473,775 for PERSONAL COMPUTER USING FLASH MEMORY AS BIOS-ROM issued to Sakai et al., and U.S. Pat. No. 5,327,531 for DATA PROCESSING SYSTEM INCLUDING CORRUPT FLASH ROM RECOVERY issued to Bealkowski et al.
While these recent efforts provide advantages, I note that they fail to adequately reduce the above drawbacks of flash memory.